草庐IT

c++ - 在 Visual Studio 中调用 std::swap 时的 std::bad_function_call

全部标签

c - Ruby C 扩展 API 问题

所以,最近我不幸地需要为Ruby做一个C扩展(因为性能)。因为我在理解上有问题VALUE(并且仍然如此),所以我查看了Ruby源代码并发现:typedefunsignedlongVALUE;(LinktoSource,但您会注意到它还有其他一些“方法”,但我认为它本质上是一个long;如果我错了,请纠正我)。因此,在进一步调查时,我发现了一个有趣的blogpost,其中说:"...insomecasestheVALUEobjectcouldBEthedatainsteadofPOINTINGTOthedata."令我困惑的是,当我尝试从Ruby将字符串传递给C并使用RSTRING_PT

ruby-on-rails - 如何使用 Ruby 调用使用 SSH 和 SCP 传输文件?

我在目录usr/share/ruby.rb中有一个文件。我想使用Ruby调用使用SSH和SCP将该文件传输到基于IP的远程设备。谁能帮帮我? 最佳答案 例子:require'net/scp'host='10.10.10.10'login='foo'password='bar'Net::SCP.start(host,login,:password=>password)do|scp|puts'SCPStarted!'scp.download('/usr/share/ruby.rb','.')end还有一个scp.upload

c - 在 C 中扩展 ruby​​ - 如何指定函数的默认参数值?

我正在尝试为将生成一个类的ruby​​编写C扩展。我正在研究如何为类定义一些默认参数。例如,如果我在ruby​​中有这个类decleration:classMyClassdefinitialize(name,age=10)@name=name@age=ageendend您可以使用mc=MyClass.new("blah")初始化它,年龄参数将在内部设置。我如何在C中执行此操作?到目前为止我得到了这个,但这迫使进入另一个论点:require"ruby.h"staticVALUEmy_init(VALUEself,VALUEname,VALUEage){rb_iv_set(self,"@n

ruby - 我在 Mac OS X 上收到 "RVM is not a function"错误,并且没有发布的解决方案有效

我在MacOSx10.8.2(“MountainLion”)上,我成功安装了RVM1.17.8及其依赖项。我可以使用它来使用rvminstall1.9.2安装Ruby版本,但我无法执行rvmuse没有收到此错误:RVMisnotafunction,selectingrubieswith'rvmuse...'willnotwork.Youneedtochangeyourterminalemulatorpreferencestoallowloginshell.Sometimesitisrequiredtouse`/bin/bash--login`asthecommand.Pleasevis

ruby 摩卡 : is there an equivalent to rspec-mocks' #and_call_original?

Rspec-mocks具有expect(some_object).toreceive(:some_method).and_call_original。我可以用Mocha做这个吗?如果可以,怎么做?some_object.expects(:some_method).......什么? 最佳答案 我相当确定没有办法做到这一点。浏览sourcecode,有评论提到完全替换了原来的方法。#Theoriginalimplementationofthemethodisreplacedduringthetestandthenrestoredatt

c - 如何在 Mac OS X 上使用 ulimit 或每个进程为 C 或 Ruby 程序更改堆栈大小?

似乎为C程序或Ruby程序(使用C堆栈)设置堆栈大小的推荐方法是使用ulimit。在Bash外壳中。但是$ulimit-s8192$ulimit-s16384-bash:ulimit:stacksize:cannotmodifylimit:Operationnotpermitted和sudo也没有帮助。有没有办法将其设置为16MB、32MB或64MB?我认为应该有一种方法可以在每次程序调用时设置它,而不是同时设置系统范围的参数?现在8192可能意味着8MB,如果与一个进程可以使用的内存量相比,这是非常小的,有时最多2GB的RAM。(更新注释:ulimit-a可以显示其当前值)。(更新2

ruby-on-rails - 将模型上的所有方法调用委托(delegate)给关联

我有一个具有多态关联的ActiveRecord模型,如下所示:classReachtrueend这个模型就像一个代理。我需要做的是将对该对象的所有方法调用转发给关联的对象:reachable。我认为delegate在这里无济于事,因为我必须明确命名我需要委托(delegate)的所有方法。我需要像delegate:all这样的东西来委托(delegate)所有方法(不是all方法)。 最佳答案 从Rails5.1+开始,您可以委托(delegate)所有未使用delegate_missing_to:reachable实现的内容基本上

ruby-on-rails - RubyMine Debugger.start 尚未调用

我在使用RubyMine调试时遇到了这个异常...Debugger.startisnotcalledyet. 最佳答案 在尝试其他建议的解决方案一段时间后,我发现我在gem文件中有以下内容:gem"debugger"这会以某种方式导致调试器发生冲突...删除这一行对我来说解决了...谢谢...来源:Debuggercrasheswhenithitsthefirstbreakpoint 关于ruby-on-rails-RubyMineDebugger.start尚未调用,我们在StackO

ruby-on-rails - 从父类(super class)调用子类方法

前言:这是在Rails应用程序的上下文中。然而,这个问题是特定于Ruby的。假设我有一个Media对象。classMedia我在几个子类中扩展了它:classImage在Media类中,我想从适当的子类中调用show的实现。因此,对于Media,如果self是一个Video,那么它将调用Video的show方法。如果self是Image,它将调用Image的show方法。我有Java背景,首先想到的是“在父类(superclass)中创建一个抽象方法”。但是,我在多个地方(包括StackOverflow)读到抽象方法并不是在Ruby中处理此问题的最佳方式。考虑到这一点,我开始了rese

ruby - 在哈希参数上迭代调用 self.send 到 initialize()

我正在尝试理解以下Ruby代码。看起来attrs是一个散列,它作为参数传递,默认值为空散列。然后attrs.each迭代散列中的键值对(|k,v|)。在本次迭代中对键值对的元素调用self.send会达到什么效果?definitialize(attrs={},*args)super(*args)attrs.eachdo|k,v|self.send"#{k}=",vendend 最佳答案 send在第一个参数中调用该方法,并将其余参数作为参数传递。在这种情况下,我假设attrs中的内容是一个属性列表。假设它是这样的:{:name=>"